課程資訊
課程名稱
資料結構與程式設計
Data Structure and Programming 
開課學期
106-1 
授課對象
電機資訊學院  電機工程學系  
授課教師
黃鐘揚 
課號
EE3011 
課程識別碼
901 31900 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期四A,B,C(18:25~21:05) 
上課地點
博理113 
備註
初選不開放。
總人數上限:160人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1061_DSnP 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

In this class, you will learn the practical issues and gain the real experiences in implementing various data structures with C++ on Linux workstations.
1. Data Structure in Programming: Why is data structure (implementation) so important?
2. Programming on Linux Workstations: A peek in the real engineering world
3. C++ Advanced Features Review: When can/should I use them?
4. What is a Good Program? A software engineering point of view
5. Computational Complexity: Time and space tradeoffs
6. Memory Management: How to gain 30% performance improvement easily
7. Dynamic Array vs. Linked List: Which one is better?
8. Tree: How to search data faster than linear time?
9. Graph and Circuit: From CS to EE Applications
10. Heap, Set and Map: How to store sorted data?
11. Cache vs. Hash: Virtual memory in your program
12. Bit Vector and Matrix: All about numerical operations
13. Putting What You Learn Together: Implementing an advanced data structure (e.g. BDD) 

課程目標
課程要求
1.成績評量:Homework (50%), Final Project (50%), Bonus (TBD)
2.預修課程:程式設計 (C++) 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
待補 
參考書目
教科書: 1. None, but you are encouraged to use any data structure or programming textbooks as references
2. Class slides: Please download and/or print out for yourself
3. Referenced papers and handouts 
評量方式
(僅供參考)
   
課程進度
週次
日期
單元主題
第1週
9/14  00. Class Introduction
01. C++ Review: The Basic (Variables, Classes, IO Streams) 
第2週
9/21  HW#1 due (09/18) / HW#2 out
01. C++ Review: The Basic (Variables, Classes, IO Streams) 
第3週
9/28  02. C++ Review - More on Functions, Variables, Classes 
第4週
10/05  HW#2 due (10/03) / HW#3 out
03. C++ Review – Overloading and Polymorphism 
第5週
10/12  03. C++ Review – Overloading and Polymorphism 
第6週
10/19  HW#3 due (10/21) / HW#4 out
04. Memory Management and Exception Handling 
第7週
10/26  05. Computational Complexity
06. List and Array 
第8週
11/02  HW#4 due (11/05) / HW#5 out
07. Tree (Part I) 
第9週
11/09  08. C++ Review - More on IO Streams 
第10週
11/16  HW#5 due (11/20) / HW#6 out
09. Graph and Circuit 
第11週
11/23  10. Special Topic: Lex and Yacc 
第12週
11/30  11. Linux Programming
12. Heap, Set, and Map 
第13週
12/07  HW#6 due (12/05) / HW#7 out
13. Cache and Hash 
第14週
12/14  Final project - FRAIG 
第15週
12/21  HW#7 due (12/19)
More on final project 
第16週
12/28  14. Tree (Part II) 
第17週
1/04  15. Special Topic: C++11 
第18週
1/11  停課 (期末考週) 
第19週
1/18  Final project due (01/17)